main() {
  Person p1 = Person();
  p1.say();

  Student p2 = Student();
  p2.name = '李四';
  p2.say();
  p2.sayId();

  Teacher p3 = Teacher();
  p3.say();
  p3.saySubject();


}

//定义一个父亲
class Person {
  String name = '张三';
  int age = 18;

  // //定义构造函数
  // Person(this.name, this.age);

  //定义方法
  void say() {
    print('我是$name,我今年$age岁');
  }
}

//定义子类-学生类
class Student extends Person {
  int id = 1;

  //定义方法
  void sayId() {
    print('我是$name,我今年$age岁,我是学生,我的学号是$id');
  }

  //重写父类方法
  @override
  void say() {
    print('我是$name,我今年$age岁,我是学生');
  }
}
// 定义子类 - 老师类
class Teacher extends Person {
  // 定义学科属性
  String subject = '鸿蒙';

  // 定义方法
  void saySubject() {
    print('我是老师，我教的学科是$subject');
  }

  // 重写父类的方法
  @override
  void say() {
    print('我是老师，我重写了父类的方法，我是$name，我今年$age岁，我教的学科是$subject');
  }
}
